﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using PiscoSourDominio;
using Dapper;

namespace PiscoSourSOAPServices.Persistencia
{
    public class ClienteDAO
    {
        public string InsertarCliente(Cliente cliente)
        {
            try
            {
                using (var sqlConnection = ConnectionFactory.GetConnection())
                {

                    sqlConnection.Open();
                    string sqlQuery = "INSERT INTO PRS_CLIENTE(intCliente,vchUsuario,vchDocumento,vchNombre,vchApellido,vchDireccion,vchDistrito,dtFecNacimiento) VALUES (@intCliente,@vchUsuario,@vchDocumento,@vchNombre,@vchApellido,@vchDireccion,@vchDistrito,@dtFecNacimiento)";
                    sqlConnection.Execute(sqlQuery,
                        new
                        {
                            intCliente = cliente.intCliente,
                            vchUsuario = cliente.vchUsuario,
                            vchDocumento = cliente.vchDocumento,
                            vchNombre = cliente.vchNombre,
                            vchApellido = cliente.vchApellido,
                            vchDireccion = cliente.vchDireccion,
                            vchDistrito = cliente.vchDistrito,
                            dtFecNacimiento = cliente.dtFecNacimiento
                        });

                    sqlConnection.Close();
                    return "";
                }
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
        }

        public string ActualizarCliente(Cliente cliente)
        {
            try
            {
                using (var sqlConnection = ConnectionFactory.GetConnection())
                {
                    sqlConnection.Open();
                    string sqlQuery = "UPDATE PRS_CLIENTE SET vchUsuario=@vchUsuario,vchDocumento=@vchDocumento,vchNombre=@vchNombre,vchApellido=@vchApellido,vchDireccion=@vchDireccion,vchDistrito=@vchDistrito,dtFecNacimiento=@dtFecNacimiento WHERE intCliente=@intCliente";
                    sqlConnection.Execute(sqlQuery,
                        new
                        {
                            intCliente = cliente.intCliente,
                            vchUsuario = cliente.vchUsuario,
                            vchDocumento = cliente.vchDocumento,
                            vchNombre = cliente.vchNombre,
                            vchApellido = cliente.vchApellido,
                            vchDireccion = cliente.vchDireccion,
                            vchDistrito = cliente.vchDistrito,
                            dtFecNacimiento = cliente.dtFecNacimiento
                        });

                    sqlConnection.Close();
                    return "";
                }
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
        }

        public string EliminarCliente(Cliente cliente)
        {
            try
            {
                using (var sqlConnection = ConnectionFactory.GetConnection())
                {

                    sqlConnection.Open();
                    string sqlQuery = "DELETE FROM PRS_CLIENTE WHERE intCliente=@intCliente";
                    sqlConnection.Execute(sqlQuery,
                        new
                        {
                            intCliente = cliente.intCliente
                        });

                    sqlConnection.Close();
                    return "";
                }
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
        }

        public IEnumerable<Cliente> ListarClientes()
        {
            return null;
        }

        public Cliente ValidaCliente(string str1, string str2)
        {
            return null;
        }
    }
}